///////////////////////////////////////////////////////////
//  CMainWindow.h
//  Implementation of the Class CMainWindow
//  Created on:      21-Sep-2013 9:35:48 AM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_787C2400_58B6_41b5_8C4C_186BAA3BB660__INCLUDED_)
#define EA_787C2400_58B6_41b5_8C4C_186BAA3BB660__INCLUDED_

#include "IViewCtrl.h"
#include "IWindowDirector.h"
#include <map>


namespace UI
{
class CMainWindow : public IWindowDirector
{

public:
	CMainWindow();
  CMainWindow(IwNUI::CApp* app);
	virtual ~CMainWindow();

	virtual void OnShowView(IViewCtrl* currentView, UI::IViewCtrl::ViewType nextView);
  virtual bool HideKeyboard();

private:
  void InitialTabBar();
  void InitialViewsAndCommands();

  bool OnSelectedTabBar(IwNUI::CTabBar* bar, int tab);

private:
	std::map<UI::IViewCtrl::ViewType, IViewCtrl*> m_allViews;
  IwNUI::CViewPtr       m_tabBarView;
  IwNUI::CTabBarPtr     m_tabBar;
  IwNUI::CViewPtr       m_containerView;
  //IwNUI::CWindowPtr     m_mainWindow;
  IwNUI::CApp*          m_app;
};
}
#endif // !defined(EA_787C2400_58B6_41b5_8C4C_186BAA3BB660__INCLUDED_)
